home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / QuickTime VR / MacOS / QuickDraw™ 3D 1.0.6F4 SDK / Development / Interfaces / QD3DRenderer.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-14  |  3.2 KB  |  118 lines  |  [TEXT/MPS ]

  1. /******************************************************************************
  2.  **                                                                             **
  3.  **     Module:        QD3DRenderer.h                                             **
  4.  **                                                                          **
  5.  **                                                                          **
  6.  **     Purpose:     Renderer types and routines                                   **
  7.  **                                                                          **
  8.  **                                                                          **
  9.  **                                                                          **
  10.  **     Copyright (C) 1992-1995 Apple Computer, Inc.  All rights reserved.     **
  11.  **                                                                          **
  12.  **                                                                          **
  13.  *****************************************************************************/
  14. #ifndef QD3DRenderer_h
  15. #define QD3DRenderer_h
  16.  
  17. #ifndef QD3D_h
  18. #include <QD3D.h>
  19. #endif  /*  QD3D_h  */
  20.  
  21. #if PRAGMA_ONCE
  22.     #pragma once
  23. #endif
  24.  
  25. #if defined(__MWERKS__)
  26.     #pragma enumsalwaysint on
  27.     #pragma align_array_members off
  28.     #pragma options align=native
  29. #endif
  30.  
  31. #ifdef __cplusplus
  32. extern "C" {
  33. #endif    /* __cplusplus */
  34.  
  35. /******************************************************************************
  36.  **                                                                             **
  37.  **                            Renderer Functions                                 **
  38.  **                                                                             **
  39.  *****************************************************************************/
  40.  
  41. QD3D_EXPORT TQ3RendererObject Q3Renderer_NewFromType(
  42.     TQ3ObjectType            rendererObjectType);
  43.  
  44. QD3D_EXPORT TQ3ObjectType Q3Renderer_GetType(
  45.     TQ3RendererObject        renderer);
  46.  
  47. QD3D_EXPORT TQ3Status Q3Renderer_Flush(
  48.     TQ3RendererObject        renderer,
  49.     TQ3ViewObject            view);
  50.     
  51. QD3D_EXPORT TQ3Status Q3Renderer_Sync(
  52.     TQ3RendererObject        renderer,
  53.     TQ3ViewObject            view);
  54.  
  55.  
  56. /******************************************************************************
  57.  **                                                                             **
  58.  **                        Interactive Renderer Specific Functions                 **
  59.  **                                                                             **
  60.  *****************************************************************************/
  61.  
  62. /* CSG IDs attribute */
  63. #define kQ3AttributeType_ConstructiveSolidGeometryID        Q3_OBJECT_TYPE('c','s','g','i')
  64.  
  65. /* Object IDs, to be applied as attributes on geometries */
  66. #define kQ3SolidGeometryObjA 0
  67. #define kQ3SolidGeometryObjB 1
  68. #define kQ3SolidGeometryObjC 2
  69. #define kQ3SolidGeometryObjD 3
  70. #define kQ3SolidGeometryObjE 4
  71.  
  72. /* Possible CSG equations */
  73.  
  74. typedef enum TQ3CSGEquation {
  75.     kQ3CSGEquationAandB            = (int) 0x88888888,
  76.     kQ3CSGEquationAandnotB         = 0x22222222,
  77.     kQ3CSGEquationAanBonCad        = 0x2F222F22,
  78.     kQ3CSGEquationnotAandB        = 0x44444444,
  79.     kQ3CSGEquationnAaBorCanB    = 0x74747474
  80. } TQ3CSGEquation;
  81.  
  82. QD3D_EXPORT TQ3Status Q3InteractiveRenderer_SetCSGEquation(
  83.     TQ3RendererObject        renderer,
  84.     TQ3CSGEquation            equation);
  85.  
  86. QD3D_EXPORT TQ3Status Q3InteractiveRenderer_GetCSGEquation(
  87.     TQ3RendererObject        renderer,
  88.     TQ3CSGEquation            *equation);
  89.  
  90. QD3D_EXPORT TQ3Status Q3InteractiveRenderer_SetPreferences(
  91.     TQ3RendererObject        renderer,
  92.     long                    vendorID,
  93.     long                    engineID);
  94.  
  95. QD3D_EXPORT TQ3Status Q3InteractiveRenderer_GetPreferences(
  96.     TQ3RendererObject        renderer,
  97.     long                    *vendorID,
  98.     long                    *engineID);
  99.     
  100. QD3D_EXPORT TQ3Status Q3InteractiveRenderer_SetDoubleBufferBypass(
  101.     TQ3RendererObject        renderer,
  102.     TQ3Boolean                bypass);
  103.  
  104. QD3D_EXPORT TQ3Status Q3InteractiveRenderer_GetDoubleBufferBypass(
  105.     TQ3RendererObject        renderer,
  106.     TQ3Boolean                *bypass);
  107.     
  108. #ifdef __cplusplus
  109. }
  110. #endif    /* __cplusplus */
  111.  
  112. #if defined(__MWERKS__)
  113. #pragma options align=reset
  114. #pragma enumsalwaysint reset
  115. #endif
  116.  
  117. #endif  /*  QD3DRenderer_h  */
  118.